package com.tjbank.cssys.dto;

import java.util.Date;
import java.util.List;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

import com.tjbank.cssys.framework.base.dto.CommonDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 用户DTO
 * 
 * Package : com.tansun.magicube.iam.dto
 * 
 * @author -- lijiangtao 2020年5月3日 下午4:28:43
 *
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class UserDTO extends CommonDTO {

	/** ❤❤❤❤❤ */
	private static final long serialVersionUID = 1L;

	/** 用户类型 */
	private String userType;

	/** 用户代码 **/
	@NotBlank(message = "userCode:用户代码不能为空")
	private String userCode;

	/** 旧密码 **/
	private String oldPassword;

	/** 登录密码 **/
	@NotBlank(message = "password:登录密码不能为空")
	private String password;

	/** 用户姓名 */
	@NotBlank(message = "userName:用户姓名不能为空")
	private String userName;

	/** 头像 */
	private String avatar;

	/** 邮箱 */
	private String email;

	/** 手机 */
	@Size(max = 11, message = "mobile:字符串长度要求最大11")
	@Pattern(regexp = "^1[345678]\\d{9}$", message = "mobile:请输入正确格式手机号")
	private String mobile;

	/** 生日 */
	private Date birthday;

	/** 性别 */
	private String sex;

	/** 身份证号 */
	@Size(max = 18, message = "idNumber字符串长度要求最大18")
	private String idNumber;

	/** 机构id **/
	@NotBlank(message = "organId:机构ID不能为空")
	private String organId;

	/** 机构名称 **/
	@NotBlank(message = "organName:机构名称不能为空")
	private String organName;

	/** 租户代码 */
	@NotBlank(message = "tenantCode:租户代码不能为空")
	private String tenantCode;

	/** 租户名称 **/
	@NotBlank(message = "tenantName:租户名称不能为空")
	private String tenantName;

	/** 前端密码是否加密 0否 1是 **/
	@NotBlank(message = "isEncryption:密码是否加密不能为空(0否 1是)")
	private String isEncryption;

	/** 状态 */
	private String state;

	/** 角色id **/
	@NotNull(message = "roleIdList:角色id不能为空")
	private List<String> roleIdList;

	/** 岗位id **/
	@NotNull(message = "postIdList:岗位id不能为空")
	private List<String> postIdList;

}
